package com.base.cn.platform.os.entity.user.user;

import com.base.cn.platform.os.common.annotation.ImgAttr;
import com.base.cn.platform.os.common.mybatis.BaseEntity;
import com.base.cn.platform.os.common.mybatis.SqlExclude;
import com.base.cn.platform.os.entity.user.address.CusUserAddress;
import com.base.cn.platform.os.entity.user.exprule.CusUserExpAccount;
import com.base.cn.platform.os.entity.user.gradeconfig.CusUserGradeConfig;
import com.base.cn.platform.os.entity.user.integral.CusUserIntegral;
import com.base.cn.platform.os.entity.user.member.CusUserMemberBuyRecord;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 用户实体
 *
 * @author s.li
 * @create 2018-04-10-13:37
 */
@Data

public class CusUser extends BaseEntity {
    /**
     * 表格属性
     */
    private String nickname;//用户昵称
    private String email;//邮箱
    private Integer emailIsavalible;//email是否验证,0未验证，1已验证
    private String mobile;//手机号
    private Integer mobileIsavalible;//mobile是否验证，0未验证，1已验证
    private String loginAccount;//登录账号
    private String password;//密码
    private String customerkey;//用户key,自动生成
    private Integer registerType;//是否是注册用户，1是，2不是
    private String registerFrom;//注册来源
    private Integer isavalible;//是否可用 1 可用  2 不可用
    private String realName;//用户真名
    private Integer gender;//'性别 0.保密 1男，2女
    private String userInfo;//用户说明
    @ImgAttr
    private String avatar;//用户头像
    private String bannerUrl;//'用户个性化背景图片'
    private Date birthday;//出生日期
    private String naturalSubjectIds;//用户自行选择的专业
    private String industry;//行业
    private Integer userType;//用户类型，1普通用户，2讲师用户，3分销用户
    /*** 是否购买过课程，1否，2是*/
    private Integer buyCourse;
    /**最后获取系统消息时间*/
    private Date lastSystemTime;
    /**最后获取系统消息时间*/
    private Date lastWorkTime;
    /**最后登录时间*/
    private Date lastLoginTime;
    /**学习总时长**/
    private Integer studyTotalTime;//学习总时长单位（秒）
    /**登录次数*/
    private Integer loginNum;
    /**学员签到次数**/
    private Integer signNum;
    /*** 参加直播数*/
    private Integer joinLiveCount;
    /*** 学习次数*/
    private Integer studyNum;
    /***总作题数*/
    private Integer questionNum;
    /**评论次数*/
    private Integer assessNum;
    /**考试次数*/
    private Integer examNum;
    /**问答次数*/
    private Integer qaNum;
    /**课程笔记数量*/
    private Integer noteNum;
    /**注册时所在地址*/
    private String regAddress;
    /**是否仅在Wifi下观看**/
    private Integer isWifi;//0否  1是
    /**课程ID串，用于学员导入*/
    private String courseIds;
    /**
     * 邀请注册者密钥
     */
    private String inviteKey;
    //======================================================
    /***扩展属性**/
    @SqlExclude
    private String confirmPwd;//确认密码
    private List<CusUserAddress> addresses;//用户地址
    private CusUserMemberBuyRecord memberBuyRecord;
    private Double amountOfConsumption;//消费金额
    @SqlExclude
    private String newPassword;//新密码
    private CusUserExpAccount cusUserExpAccount;//用户当前积分
    private CusUserGradeConfig cusUserGradeConfig;//用户当前等级
    private CusUserIntegral userIntegral;//用户当前积分
    @SqlExclude
    private Boolean isAgentUser;//是否是推广员  true是  其他都不是
    @SqlExclude
    private String mobileCode;//手机证码
    @SqlExclude
    private String emailCode;//邮箱验证码
    @SqlExclude
    private String captcha;//图片验证码
    @SqlExclude
    private String autoThirty;//是否自动登录
    @SqlExclude
    private Integer gapLeft;//图片验证码参数
    @SqlExclude
    private Integer moveLeft;//图片验证码参数
    private boolean other;//是否是第三方登录
    @SqlExclude
    private BigDecimal cpId;//第三方登录记录ID
    @SqlExclude
    private boolean administrator;//是否需要跳转设置密码
    @SqlExclude
    private String sign;//密码非对称加密签名

    private double todayCount;//今日学习时长
    private Long finishCount;//完成章节数
    private Integer continuityCount;//连续学习天数
    private Integer ranking;//排名

}
